use chrono::{DateTime, Utc};
use serde::{Deserialize, Serialize};
use sqlx::prelude::FromRow;
use utoipa::ToSchema;

/// 角色模型
/// 
/// **作者：**张翔宇
/// **时间：2025年9月2日
#[derive(Debug, Serialize, Deserialize, FromRow, ToSchema)]
pub struct Role {
    /// 角色ID
    pub id: i64,

    /// 角色编码
    pub code: String,

    /// 角色名称
    pub name: String,

    /// 角色描述
    pub description: String,

    /// 是否启用(true | false)
    pub enabled: bool,

    /// 创建人ID
    pub created_by: String,

    /// 创建时间
    #[schema(value_type = String, format = DateTime)]
    pub created_at: DateTime<Utc>,

    /// 更新时间
    #[schema(value_type = String, format = DateTime)]
    pub updated_at: DateTime<Utc>
}